Skip to content

业务平台

/station/meta_info

一些下拉菜单之类的地方需要的数据,因为不同页面需要的数据不同但是又有些重合,所以把这类数据放在一个接口里,前端可以通过 request 来决定需要哪些数据

method
    GET
request
    stations            O   bool (0 或 1)  response 里是否返回 stations 字段,默认 false
    roles               O   bool (0 或 1)  response 里是否返回 roles 字段,默认 false
    station_permissions O   bool (0 或 1)  response 里是否返回 station_permissions 字段,默认 false
    station_id          O   str            response 里返回的 station_permissions 字段对应的站点ID;如果 request 里 station_permissions 没有传或者为 false 的话,但是 station_id 传了的话,response 里也会有 station_permissions 字段
response
    {
        data: {
            stations: [  // 登录的加盟商管理员    对应的加盟商 旗下的所有站点
                {
                    id:         str
                    name:       str
                }
            ],
            roles: [
                {
                    station_id  str
                    id:         int
                    name:       str
                }
            ],
            station_permissions: [
                {
                    "id": 1,                        // level 1 id
                    "name": "部门",               // level 1 name
                    "content": [
                        {
                            "id": 4,                // level 2 id
                            "name": "部门管理",         // level 2 name
                            "permissions": [
                                {
                                    "id": 4,              // permission id
                                    "name": "增加部门",     // permission name
                                },
                            ]
                        },
                    ]
                },
            ]
        },
        code: 0,
        msg: 'OK',
    }
logic
    「station_id 字段需要传」当且仅当「request 中传了 station_permissions 字段,而且 station_permissions 的值为 1」
    具体的原因是:同一个加盟商下不同站点的权限不同,如果用户以加盟商管理员的身份登录本系统的话,那么为了区分自己所在的加盟商下的站点,需要传这个字段
graphql
    query {
        stations (station_id: {}) {
            id
            name
        }
        roles (station_id: {}) {
            id
            name
        }
        permissions (station_id: {}) {
            permission_level2_class {
                permission_level1_class
            }
        }
    }

业务平台,角色管理,按角色查看

/station/role/search

搜索(station)角色

method
    GET
request
    station_id      O   str 不传代表全部
    search_text     O   str 角色名,不传代表全部
response
    {
        data: {
            roles: [
                id:             M   int
                name:           M   str
                station_name:   M   str
                description:    M   str
                create_date:    M   str or null
            ]
        }
        msg: "OK",
        code: 0
    }
graphql
    query {
        roles (
            station_id: {station_id}
            contain_role_name: {name}
        ) {
            id
            name
            description
            create_date
            station {
                name
            }
        }
    }

/station/role/detail

查看(station)角色的详情

method
    GET
request
    id  M   int 角色 id
response
    {
        data: {
            id:                 M   int
            name:               M   str
            station_id:         M   str
            station_name:       M   str
            description:        M   str
            permission_ids:     M   list of int
        },
        msg: "OK",
        code: 0
    }
graphql
    query {
        role (
            id: $id
        ) {
            id
            name
            description
            station {
                id
                name
            }
            permissions: {
                id
                name
            }
        }
    }

/station/role/name/check

新建角色前检查角色用户名是否可用

method
    POST
request
    name        M   str
    station_id  M   str
response
    {
        data: null
        msg: 'OK'
        code: 0
    }
    {
        data: null
        msg: '当前站点已经有名为 {} 的角色了,请修改角色名称'
        code: 1
    }
graphql
    query {
        roles(username: {username}, station_id: {station_id}) {
            id
        }
    }

/station/role/create

创建(station)角色

method
    POST
request
    name:               M   str
    station_id:         M   str
    description:        O   str
    permission_ids:     M   search of int
response
    {
        data: { id: 123 }  // M int
        msg: 'OK',
        code: 0
    }
microservices
    /station/role/create

/station/role/update

更新(station)角色

method
    POST
request
    id                  M   int
    name                O   str
    // station_id       O   str   station 的role不允许修改所属的 station_id
    description         O   str
    permission_ids      O   list of int
response
    { "code": 0, "msg": "OK", "data": null }
microservices
    /station/role/update

/station/role/delete

删除(station)角色

method
    POST
request
    id  M   int     角色 id
response
    { "code": 0, "msg": "OK", "data": null }
microservices
    /station/role/delete

业务平台,角色管理,按权限查看

/station/role/permission/search

搜索(station)权限

method
    GET
request
    level_1_id  int         O   一级权限的id,不传代表全部一级权限
    level_2_id  int         O   二级,同上
    search_text string      O   要搜索的权限名,不传代表全部
response
    {
        data: {
            permissions:            M   list    [
                {
                    id:             M   str
                    name:           M   str
                    level_1_name:   M   str
                    level_2_name:   M   str
                    user_count:     M   int
                    role_count:     M   int
                    role_names:     M   list of str  // 最多返回11条
                }
        },
        msg: 'OK',
        code: 0,
    ]
logic
    1. 如果用户以MA管理员登录的话,user_count 和 role_count 只统计MA管理员所在加盟商下面的;如果用户以station管理员登录的话,只统计所在站点下面的。
    2. user_count 只统计「有效」的用户,不统计「无效」的用户
graphql
    query {
        permissions (partner_id: {}) {
            id
            name
            permission_level2_class {
                id
                name
                permission_level1_class {
                    id
                    name
                }
            }
            stations (partner_id: {}) {
                id
                name
            }
            roles (partner_id: {}) {
                name
            }
            users (partner_id: {}) {
                id
            }
        }
    }
    query {
        permissions (station_id: $station_id) {
            id
            name
            permission_level2_class {
                id
                name
                permission_level1_class {
                    id
                    name
                }
            }
            stations (station_id: $station_id) {
                id
                name
            }
            roles (station_id: $station_id) {
                name
            }
            users (station_id: $station_id) {
                id
            }
        }
    }

/station/role/permission/detail

查询某个权限已分配的角色和所有可分配的角色

method
    GET
request
    id  M   int 权限 id
response
    {
        data: {
            roles:[                         M   list
                {
                    "id": 61,               M   int
                    "name": “增加采购单”     M   str
                    "station_id": "T002"    M   str
                }
            ],
            available_roles: [              M   list
                {
                    "id": 62,               M   int
                    "name": “增加采购任务”    M  str
                    "station_id": "T002"    M   str
                }
            ]
        }
    }
logic
    available_roles 代表可以赋予此权限的所有角色。data.roles 是 data.available_roles 的子集。
    之所以添加这个字段,原因是:同一个加盟商旗下的站点不同,不同站点拥有的 station 权限不同。当加盟商管理员登录 gm_account,调用 /station/role/permission/update 接口时,request中的 role_ids 必须是「「「这个加盟商旗下的 而且 拥有这个权限的」的站点」的角色」的子集。
graphql
    query {
        permission (id: {}) {
            stations  {     # 拥有这个权限的站点们
                id
                roles {     # 拥有这个权限的站点们旗下的所有角色
                    id
                    name
                }
            }
            roles {
                id
                name
            }
        }
    }

/station/role/permission/update

更新「激活某个(station)权限的所有(station)角色」

method
    POST
request
    permission_id   M   int
    role_ids        M   list of int
response
    { "code": 0, "msg": "OK", "data": null }
logic
    当登录用户是 ma 管理员时,role_ids 必须是 /station/role/permission/detail 接口 rsponse 中 available_roles 的子集。
    当登录用户是 station 管理员时,role_ids 必须是 /station/meta_info 接口 response 中 roles 的子集
microservice
    /station/permission/change_role

业务平台,用户管理

/station/user/search

搜索(station)用户

method
    GET
request
    is_valid    O   bool (0 或 1)
    station_id  O   str
    role_id     O   int
    search_text O   str
    is_admin    O   bool (0 或 1)    是否是管理员
    // 分页
    offset      O   int 默认 0
    limit       O   int 默认 20
response
    {
        data: {
            users: [                M   list
                {
                    id:             M   int     用户 id
                    username:       M   str     用户名
                    name:           M   str     姓名
                    roles: [
                        {
                            id: 123,
                            name: '角色名'
                        }
                    ]
                    is_admin:       M   bool    是否是管理员
                    is_valid:       M   bool
                    create_date:    M   str or null
                    role_name       M   str
                    station_name    M   str
                }
            ]
        ],
        msg: 'OK',
        code: 0,
    }
logic
    request 里不传的字段代表全部
graphql
    {
        query {
            users {
                id
                name
                username
                is_admin
                is_valid
                role_name
                create_time
                roles {
                    id
                    name
                }
                station {
                    name
                }
            }
        }
    }

/station/user/detail

(station)用户详情

method
    GET
request
    id  M   int
response
    {
        data: {
            id          M   int     user id
            username:   M   str     用户名
            station_id  M   str     所属站点 id
            is_admin:   M   bool    是否是管理员
            name:       M   str     姓名
            phone:      M   str     手机
            email:      M   str     邮箱
            roles: [
                {
                    id: 123,
                    name: '角色名'
                }
            ]
            is_admin:   M   bool
            name:       M   str
            phone:      M   str
            email:      M   str
            card_id:    M   str     身份证号码
            is_valid    M   bool    是否有效
            card_emblem_img_url M   str 身份证国徽面的图片 url
            card_photo_img_url  M   str 身份证照片面的图片 url
        },
        msg: 'OK',
        code: 0,
    }
graphql {
        user {
            id
            username
            station_id
            is_admin
            name
            phone
            email
            roles {
                id
                name
            }
            is_admin
            name
            phone
            email
            card_id
            is_valid
            card_emblem_img_url
            card_photo_img_url
        }
    }

/station/user/create

创建(station)用户

method
    POST
request
    username            M   str
    station_id          M   str
    role_ids            M   list of int
    is_admin            M   bool (0 或 1)
    is_valid            M   bool (0 或 1)
    password            M   str
    name                O   str 姓名
    phone               O   str
    email               O   str
    card_id             O   str 身份证号码
    card_emblem_img     O   str 身份证带国徽一面 id
    card_photo_img      O   str 身份证带相片一面 id
response
    {
        data: { id: 123 }  // M int 用户 id
        msg: 'OK',
        code: 0,
    }
microservices
    /station/user/create

/station/user/update

更新(station)用户

method
    POST
request
    id          M   int
    username    O   str
    role_ids    O   list of int
    is_admin    O   bool (0 或 1)
    is_valid    O   bool (0 或 1)
    password    O   str
    name        O   str
    phone       O   str
    email       O   str
    card_id     O   str 身份证号码
    card_emblem_img     O   str 身份证带国徽一面 id
    card_photo_img      O   str 身份证带相片一面 id
response
    {
        data: { id: 123 }  // M int
        msg: 'OK',
        code: 0,
    }
logic
    所有非必须的参数,如果不传就代表不修改
    当前登录用户不可以修改自己的「username, role_ids, is_admin, is_valid」,如果传了这几个字段的话后台会报错
microservices
    /station/user/update

/station/user/delete

删除(station)用户

method
    POST
request
    id  M   int
response
    { "code": 0, "msg": "OK", "data": null }
logic
    当前登录用户不可以删除自己
microservices
    /station/user/delete